/**
 * Historico de alteração
 *
 * Data         Autor   Descrição
 * 24/10/2010   Jerry   Criação do cabeçalho.
 *
 */

package Instrumentos;

import Dados.Fila;
import Dados.FilaDouble;
import Dados.Pacote;
import javax.swing.JProgressBar;
import javax.swing.JSlider;
import javax.swing.JTextField;

/**
 *
 * @author Bruno
 */
public class GerenciaInstrumentos extends Thread {

    private String endereco;
    private Fila fila;
    private FilaDouble fila_grafico;
    private FilaDouble fila_amperimetro;
    private FilaDouble fila_pressao;
    GerenciaGraficoVelocidade grafico_velocidade;
    GerenciaAmperimetro instrumento_amperimetro;
    GerenciaPressao instrumento_presao;
    private Pacote pack;
    private JTextField texto_pressao;
    private JTextField texto_tensao;
    private JTextField texto_numero_passageiros;



    public GerenciaInstrumentos(String endereco, Fila fila, FilaDouble fila_grafico, FilaDouble fila_amperimetro, FilaDouble fila_pressao, GraficoVelocidade grafico, Amperimetro amperimetro, InstrumentoPressao pressao ,JTextField texto_pressao, JTextField texto_tensao, JTextField texto_numero_passageiros, JSlider slider, JProgressBar bar, JTextField texto) {
        this.endereco = endereco;
        this.fila = fila;
        this.texto_numero_passageiros = texto_numero_passageiros;
        this.texto_pressao = texto_pressao;
        this.texto_tensao = texto_tensao;
        this.fila_grafico = fila_grafico;
        this.fila_amperimetro = fila_amperimetro;
        this.fila_pressao = fila_pressao;
        grafico_velocidade = new GerenciaGraficoVelocidade(grafico, fila_grafico, slider, bar, texto);
        instrumento_amperimetro = new GerenciaAmperimetro(amperimetro, fila_amperimetro);
        instrumento_presao = new GerenciaPressao(pressao, fila_pressao);
        iniciaInstrumentos();
    }


    @Override
    public void run() {
        while(true) {
                pack = fila.remove();
                if(pack.getEndereco().equals(endereco)) {
                    fila_grafico.insert(pack.getVelocidade());
                    fila_amperimetro.insert(pack.getCorrente());
                    fila_pressao.insert(pack.getPressao());
                    texto_numero_passageiros.setText(String.valueOf(pack.getNumeroPassageiros()));
                    texto_pressao.setText(String.valueOf(pack.getPressao()));
                    texto_tensao.setText(String.valueOf(pack.getTensao()));
                }
        }
    }

    public void iniciaInstrumentos() {
        this.start();
    }

    public void paraInstrumentos() {
        this.interrupt();
    }

}
